package marseillaisdu90.modele;

/**
 * Cette classe représente les différents personnages présent dans le jeu
 * Un personnage peut possède une interaction (un message, un code, une énigme) 
 * @author guillaume
 *
 */
public class Personnage {

	private String nom;
	private String description;
	private int posX;
	private int posY;
	//private String path_char;
	private final int image;
	private String typeInteraction;
	private int numInteraction;
	/**
	 * Constructeur qui initialise les caractéristique du personnage
	 * @param chx_nom nom du personnage
	 * @param chx_description description du personnage
	 * @param chx_posX position en X du personnage
	 * @param chx_posY position en Y du personnage
	 * @param chx_image chemin de l'image du personnage
	 * @param chx_typeInteraction type de l'interaction du personnage
	 * @param chx_numInteraction numéro de l'interaction du personnage
	 */
public Personnage(String chx_nom, String chx_description, int chx_posX, int chx_posY, int chx_image, String chx_typeInteraction, int chx_numInteraction) {
		
		nom=chx_nom;
		description=chx_description;
		posX=chx_posX;
		posY=chx_posY;
		//path_char="img/char/";
		image=chx_image;
		typeInteraction=chx_typeInteraction;
		numInteraction=chx_numInteraction;
		
		
	}
	
	/**
	 * Obtenir le nom du personnage
	 * @return nom du personnage
	 */
	public String getNom() {
	
		return nom;
	
	}

/**
 * Obtenir la description du personnage
 * @return description du personnage
 */
	public String getDescription() {
	
		return description;
	
	}

	/**
	 * Obtenir la position en X du personnage
	 * @return position en X
	 */
	public int getPosX() {
	
		return posX;
	
	}

	/**
	 * Obtenir la position en Y du personnage
	 * @return position en Y
	 */
	public int getPosY() {
	
		return posY;
	
	}
	
	/**
	 * Obtenir le chemin de l'image du personnage
	 * @return chemin de l'image
	 */
	public int getChemin_image() {
		
		return image;
		
	}
	
	/**
	 * Obtenir le type d'interaction du personnage
	 * @return type d'interaction
	 */
	public String getTypeInteraction() {
		
		return typeInteraction;
		
	}
	
	/**
	 * Obtenir le numéro d'interaction du personnage
	 * @return numéro d'interaction
	 */
	public int getNumInteraction() {
		
		return numInteraction;
		
	}

	/**
	 * Modifier le nom du personnage
	 * @param chx_nom nom du personnage voulu
	 */
	public void setNom(String chx_nom) {
	
		nom=chx_nom;
	
	}

	/**
	 * Modifier la description du personnage
	 * @param chx_description description du personnage voulu
	 */
	public void setDescription(String chx_description) {
	
		description=chx_description;
	
	}

	/**
	 * Modifier la position en X du personnage
	 * @param chx_posX position en X voulu
	 */
	public void setPosX(int chx_posX) {
	
		posX=chx_posX;
	
	}

	/**
	 * Modifier la position en Y du personnage
	 * @param chx_posY position en Y voulu
	 */
	public void setPosY(int chx_posY) {
	
		posY=chx_posY;
	
	}
	
	/**
	 * Modifier le type d'interaction du personnage
	 * @param chx_typeInteraction type d'interaction
	 */
	public void setTypeInteraction(String chx_typeInteraction) {
		
		typeInteraction=chx_typeInteraction;
	
	}
	
	/**
	 * Modifier le numéro d'interaction du personnage
	 * @param num numéro d'interaction
	 */
	public void setNumInteraction(int num) {
		
		numInteraction=num;
		
	}
	
	/**
	 * Vérifier si le joueur se trouve à coté du personnage
	 * @param chx_posX position en X du joueur
	 * @param chx_posY position en Y du joueur
	 * @param Direction direction du joueur
	 * @return true le joueur se trouve à coté du personnage
	 */
	public boolean verifPosJoueur(int chx_posX,int chx_posY, String Direction){
		if ( (posX==chx_posX+1 && posY==chx_posY && Direction=="Droite") ||
				(posX==chx_posX-1 && posY==chx_posY && Direction=="Gauche") ||
				(posX==chx_posX && posY==chx_posY+1 && Direction=="Bas") ||
				(posX==chx_posX && posY==chx_posY-1 && Direction=="Haut")  ){
			return true;
		}
		else {
			return false;
		}
	}
	
	
}
